package com.vr.cloudpicture.manager.websocket.model.enums;

import cn.hutool.core.util.ObjectUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 图片编辑消息的类型枚举
 *
 * @author hzh
 * @date 2025/05/26
 */
@Getter
@AllArgsConstructor
public enum PictureEditMessageTypeEnum {

    INFO("发送通知", "INFO"),
    ERROR("发送错误通知", "ERROR"),
    ENTER_EDIT("进入编辑状态", "ENTER_EDIT"),
    EDIT_ACTION("执行编辑操作", "EDIT_ACTION"),
    EXIT_EDIT("退出编辑状态", "EXIT_EDIT");

    private final String text;
    private final String value;


    /**
     * 根据value获取枚举
     */
    public static PictureEditMessageTypeEnum getEnumByValue(String value) {
        if (ObjectUtil.isNull(value)) {
            return null;
        }
        // 这种方式如果枚举值比较多的话，效率不高
        for (PictureEditMessageTypeEnum pictureEditMessageTypeEnum : PictureEditMessageTypeEnum.values()) {
            if (pictureEditMessageTypeEnum.getValue().equals(value)) {
                return pictureEditMessageTypeEnum;
            }
        }
        return null;
    }
}
